Fix async drop glue for Box<T>#156067
Conversation
|
r? @oli-obk rustbot has assigned @oli-obk. Use Why was this reviewer chosen?The reviewer was selected based on:
|
This comment was marked as resolved.
This comment was marked as resolved.
|
The job Click to see the possible cause of the failure (guessed by this bot)For more information how to resolve CI failures of this job, visit this link. |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
|
oof turns out I didn't see #145316 for 9 months. Gonna review that one first |
LMAO Ok gl |
|
@oli-obk can I close this? |
|
I'd like to land the sized-only version first. I don't know if the other PR's solution is different from yours. I'll need to compare and figure out whether either solution is one to merge |
Fixes #143658.
This fixes async drop behavior for boxed values so that async drop glue reaches the boxed value’s async destructor in async drop context.
The change updates async-drop needs-drop analysis so
Box<T>is handled specially for async drop by considering the boxed pointee and allocator when deciding whether async drop glue is needed.This PR intentionally does not change the broader AsyncDrop design. It only fixes behavior under the existing
#![feature(async_drop)]implementation.Tests:
.\x.ps1 test --force-rerun tests/ui/async-await/async-drop/async-drop-box.rs.\x.ps1 test --force-rerun tests/ui/async-await/async-drop.\x.ps1 test tidyReviewer notes:
async-drop-box-allocator.rsalready covers async-dropping the allocator of aBox; this PR adds distinct coverage for the boxed value itself.needs_dropbehavior is unchanged.